<?php
namespace ImiApp\Module\Member\Model\Base;

use Imi\Model\Model as Model;
use Imi\Model\Annotation\DDL;
use Imi\Model\Annotation\Table;
use Imi\Model\Annotation\Column;
use Imi\Model\Annotation\Entity;

/**
 * 地区表 基类
 * @Entity
 * @Table(name="fa_area", id={"id"})
 * @DDL("CREATE TABLE `fa_area` (
  `id` int(10) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `pid` int(10) DEFAULT NULL COMMENT '父id',
  `shortname` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '简称',
  `name` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '名称',
  `mergename` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '全称',
  `level` tinyint(4) DEFAULT NULL COMMENT '层级:1=省,2=市,3=区/县',
  `pinyin` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '拼音',
  `code` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '长途区号',
  `zip` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '邮编',
  `first` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '首字母',
  `lng` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '经度',
  `lat` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '纬度',
  PRIMARY KEY (`id`),
  KEY `pid` (`pid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='地区表'")
 * @property int $id ID
 * @property int $pid 父id
 * @property string $shortname 简称
 * @property string $name 名称
 * @property string $mergename 全称
 * @property int $level 层级:1=省,2=市,3=区/县
 * @property string $pinyin 拼音
 * @property string $code 长途区号
 * @property string $zip 邮编
 * @property string $first 首字母
 * @property string $lng 经度
 * @property string $lat 纬度
 */
abstract class AreaBase extends Model
{
    /**
     * ID
     * id
     * @Column(name="id", type="int", length=10, accuracy=0, nullable=false, default="", isPrimaryKey=true, primaryKeyIndex=0, isAutoIncrement=true)
     * @var int
     */
    protected $id;

    /**
     * 获取 id - ID
     *
     * @return int
     */ 
    public function getId()
    {
        return $this->id;
    }

    /**
     * 赋值 id - ID
     * @param int $id id
     * @return static
     */ 
    public function setId($id)
    {
        $this->id = $id;
        return $this;
    }

    /**
     * 父id
     * pid
     * @Column(name="pid", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var int
     */
    protected $pid;

    /**
     * 获取 pid - 父id
     *
     * @return int
     */ 
    public function getPid()
    {
        return $this->pid;
    }

    /**
     * 赋值 pid - 父id
     * @param int $pid pid
     * @return static
     */ 
    public function setPid($pid)
    {
        $this->pid = $pid;
        return $this;
    }

    /**
     * 简称
     * shortname
     * @Column(name="shortname", type="varchar", length=100, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $shortname;

    /**
     * 获取 shortname - 简称
     *
     * @return string
     */ 
    public function getShortname()
    {
        return $this->shortname;
    }

    /**
     * 赋值 shortname - 简称
     * @param string $shortname shortname
     * @return static
     */ 
    public function setShortname($shortname)
    {
        $this->shortname = $shortname;
        return $this;
    }

    /**
     * 名称
     * name
     * @Column(name="name", type="varchar", length=100, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $name;

    /**
     * 获取 name - 名称
     *
     * @return string
     */ 
    public function getName()
    {
        return $this->name;
    }

    /**
     * 赋值 name - 名称
     * @param string $name name
     * @return static
     */ 
    public function setName($name)
    {
        $this->name = $name;
        return $this;
    }

    /**
     * 全称
     * mergename
     * @Column(name="mergename", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $mergename;

    /**
     * 获取 mergename - 全称
     *
     * @return string
     */ 
    public function getMergename()
    {
        return $this->mergename;
    }

    /**
     * 赋值 mergename - 全称
     * @param string $mergename mergename
     * @return static
     */ 
    public function setMergename($mergename)
    {
        $this->mergename = $mergename;
        return $this;
    }

    /**
     * 层级:1=省,2=市,3=区/县
     * level
     * @Column(name="level", type="tinyint", length=4, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var int
     */
    protected $level;

    /**
     * 获取 level - 层级:1=省,2=市,3=区/县
     *
     * @return int
     */ 
    public function getLevel()
    {
        return $this->level;
    }

    /**
     * 赋值 level - 层级:1=省,2=市,3=区/县
     * @param int $level level
     * @return static
     */ 
    public function setLevel($level)
    {
        $this->level = $level;
        return $this;
    }

    /**
     * 拼音
     * pinyin
     * @Column(name="pinyin", type="varchar", length=100, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $pinyin;

    /**
     * 获取 pinyin - 拼音
     *
     * @return string
     */ 
    public function getPinyin()
    {
        return $this->pinyin;
    }

    /**
     * 赋值 pinyin - 拼音
     * @param string $pinyin pinyin
     * @return static
     */ 
    public function setPinyin($pinyin)
    {
        $this->pinyin = $pinyin;
        return $this;
    }

    /**
     * 长途区号
     * code
     * @Column(name="code", type="varchar", length=100, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $code;

    /**
     * 获取 code - 长途区号
     *
     * @return string
     */ 
    public function getCode()
    {
        return $this->code;
    }

    /**
     * 赋值 code - 长途区号
     * @param string $code code
     * @return static
     */ 
    public function setCode($code)
    {
        $this->code = $code;
        return $this;
    }

    /**
     * 邮编
     * zip
     * @Column(name="zip", type="varchar", length=100, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $zip;

    /**
     * 获取 zip - 邮编
     *
     * @return string
     */ 
    public function getZip()
    {
        return $this->zip;
    }

    /**
     * 赋值 zip - 邮编
     * @param string $zip zip
     * @return static
     */ 
    public function setZip($zip)
    {
        $this->zip = $zip;
        return $this;
    }

    /**
     * 首字母
     * first
     * @Column(name="first", type="varchar", length=50, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $first;

    /**
     * 获取 first - 首字母
     *
     * @return string
     */ 
    public function getFirst()
    {
        return $this->first;
    }

    /**
     * 赋值 first - 首字母
     * @param string $first first
     * @return static
     */ 
    public function setFirst($first)
    {
        $this->first = $first;
        return $this;
    }

    /**
     * 经度
     * lng
     * @Column(name="lng", type="varchar", length=100, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $lng;

    /**
     * 获取 lng - 经度
     *
     * @return string
     */ 
    public function getLng()
    {
        return $this->lng;
    }

    /**
     * 赋值 lng - 经度
     * @param string $lng lng
     * @return static
     */ 
    public function setLng($lng)
    {
        $this->lng = $lng;
        return $this;
    }

    /**
     * 纬度
     * lat
     * @Column(name="lat", type="varchar", length=100, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $lat;

    /**
     * 获取 lat - 纬度
     *
     * @return string
     */ 
    public function getLat()
    {
        return $this->lat;
    }

    /**
     * 赋值 lat - 纬度
     * @param string $lat lat
     * @return static
     */ 
    public function setLat($lat)
    {
        $this->lat = $lat;
        return $this;
    }

}
